/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.mysiteforme.admin.base;


import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.activerecord.Model;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

import java.io.Serializable;
import java.util.Date;


/**
 * Entity支持类
 *
 * @param <T>
 */

public abstract class BaseEntity<T extends Model> extends Model<T>  {



    /**
     * 实体编号（唯一标识）
     */

    protected Long id;


//    //保存时间
//    @JSONField(format="yyyy-MM-dd HH:mm:ss")
//    protected Date addDate;
//
//    //更新时间
//    @JSONField(format="yyyy-MM-dd HH:mm:ss")
//    protected Date udpDate;
//
//    //保存人
//    protected Integer addUid;
//
//    //更新人
//    protected Integer udpUid;

    public BaseEntity() {

    }

    public BaseEntity(Long id) {
        this();
        this.id = id;
    }
    @JsonSerialize(using=ToStringSerializer.class)
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

    @Override
    public boolean equals(Object obj) {
        if (null == obj) {
            return false;
        }
        if (this == obj) {
            return true;
        }
        if (!getClass().equals(obj.getClass())) {
            return false;
        }
        BaseEntity<?> that = (BaseEntity<?>) obj;
        return null != this.getId() && this.getId().equals(that.getId());
    }


//    public Date getAddDate() {
//        return addDate;
//    }
//    public void setAddDate(Date addDate) {
//        this.addDate = addDate;
//    }
//    public Date getUdpDate() {
//        return udpDate;
//    }
//    public void setUdpDate(Date udpDate) {
//        this.udpDate = udpDate;
//    }
//    public Integer getAddUid() {
//        return addUid;
//    }
//    public void setAddUid(Integer addUid) {
//        this.addUid = addUid;
//    }
//    public Integer getUdpUid() {
//        return udpUid;
//    }
//    public void setUdpUid(Integer udpUid) {
//        this.udpUid = udpUid;
//    }


}
